Project managers or planners typically work with a project plan timeline, which is a set of tasks that are associated with an overall project or objective, and that are displayed over a timeline within a user interface. Project managers typically define the project plan timeline, and thus, typically define how tasks are distributed within the project plan timeline.
Traditionally, a project planning system could allow a user to interact with the project plan timeline that is displayed within the user interface. More specifically, the project planning system could allow a user to assign tasks to resources, and can visually display the task-resource assignments. Further, the project planning system could allow the user to manage various other parameters of tasks. However, a typical limitation of the project planning system was that it was not possible for a user to interact with the displayed project plan timeline to assign a task to multiple resources, manage resource allocation percentages of each resource individually, and also add or subtract any one resource individually. In this scenario, it was possible that the project planning system could switch from a view of the project plan timeline to a task-specific detail view within the user interface, and allow a user to perform multiple resource assignments and related modifications within the task-specific detail view. However, the project planning system typically could not allow the user to achieve the same result from a view of the project plan timeline. Further, if a task was assigned to multiple resources, the project planning system could not typically visualize this information within the view of the project plan timeline displayed to the user within the interface. Instead, the user would usually be required to switch to the task-specific detail view within the user interface in order to determine whether the task was assigned to multiple resources.
Further, a project plan timeline typically includes a special type of task that is identified as a “milestone task,” where a “milestone task” is a task that indicates a completion of a significant phase in an overall project. A project planning system typically displays a task within a user interface based on an effort associated with the task. However, a milestone task typically does not have an effort associated with the milestone task. This can make visually displaying a milestone task very difficult, as the milestone task would be displayed as a point, which is difficult to depict within a user interface and which would make it difficult for a user to interact with. Typically, a milestone task is displayed within a Gantt chart as a diamond. However, if a project planning system visually displays a milestone task as a diamond within a user interface, the project planning system will generally be unable to display any information within the diamond, unless a size of the diamond is very large. However, if the project planning system displays a milestone task as a very large diamond, it can be problematic for the project planning system to display other tasks or milestone tasks in the same vicinity, as the large diamond will take up a significant amount of space within the user interface. Even further, certain types of milestone tasks may have an associated non-zero duration, and may even have an associated non-zero effort, and these milestone tasks need to be displayed in a manner that distinguishes these milestone tasks from conventional tasks that have an associated duration and effort. Thus, project planning systems typically do not have a feasible way to display a milestone task within a user interface, where the display of the milestone task is both visible and unobtrusive, and where the display of the milestone task visually depicts whether, or how much of, a duration and/or effort is associated with the milestone task. Further, it is desirable that the project planning system has a consistent visual pattern of depiction or different types of milestone tasks, and the visual depiction should be easy to interact with (e.g., drag within the user interface, resize, etc.).
Even further, project managers typically work on projects where work comes in as a flow. Such work can include: food orders in a restaurant; electrical/plumbing maintenance service requests for a commercial building; stitching orders for a tailoring shop; or lathe machining jobs in a workshop. This work can come in as an irregular stream or flow, often in bursts. The actual flow is typically not accurately known beforehand even though good estimations might be available. Thus, it may become necessary to perform dynamic monitoring, dynamic resource allocation and dynamic planning in order to manage the incoming work. Important parameters which may need monitoring and management can include, for example: pending work for a current date or time period; incoming work for a current date or time period; work allocation to resources for a current date or time period; current progress of work (overall and resource-wise); productivity resource-wise; available resource bandwidth for current date or time period and future date or time periods; and estimated incoming work for future date or time periods. It may be difficult for a project manager to monitor all these parameters, identify actions that need to be taken in light of the monitored parameters, and respond to modifications to the monitored parameters, such as more incoming work, slower than expected productivity or progress, etc.